﻿﻿﻿﻿/***********************************  Ccay IGrid Base  ***********************************/
Ccay.UI.IGrid = {};

(function(IGrid) {
	// IGrid静态变量设置
	var _Const = IGrid.Const = {
		inserted : {
			css : "igrid-newrow"
		},
		selected : {
			css : "igrid-selected"
		},
		// 设置父节点的半选状态
		halfSelected : {
			css: "igrid-selecthalf"
		},
		deleted : {
			css : "row-del"
		},
		updated: {
			css: "igrid-updated"
		},
		focus : {
			css : "igrid-actived"
		},
		I18n : {}
	};

	IGrid.Helper = {
		/** @description 给html数组添加属性
		 *  @param {Array} html html数组
		 *  @param {JsonObject/String} name 属性名称
		 *  @param {JsonObject/Array/String} field 属性值
		 *  @return {IGrid}
		 */
		addProp : function(html, name, field) {
			// 若name是对象，则遍历对象的属性添加到html中
			if ($.isPlainObject(name)) {
				$.each(name, function(k, v) {
							v != null && html.push(" ", k, "='", v, "'");
						});
			// 若field存在，则将field值赋给name添加到html中
			} else if (field) {
				html.push(" ", name, "='", field, "'");
			}
			return this;
		},
		/** @description 若value存在，则给单元格对象的val属性赋值；若value不存在，则返回单元格的val属性的值
		 *  @param {JQDom} cell 单元格对象
		 *  @param {String} value 单元格的值
		 *  @return {}
		 */
		attrValue : function(cell, value) {
			return value == void 0 ? cell.attr('val') : cell.attr('val', value);
		},
		/** @description 获取节点所在的grid对象
		 *  @param {JQDom} dom 节点对象 
		 *  @return {JQDom}
		 */
		getGrid : function(dom) {
			return dom.parents('.ccay-igrid:first');
		},
		/** @description 获取IGrid对象
		 *  @param {JQDom} dom 节点对象
		 *  @return {IGrid}
		 */
		getGridObj : function(dom) {
			return this.getGrid(dom).manager("XGrid");
		},
		/** @description 设置行状态
		 *  @param {Object} record 数据对象
		 *  @return {String} 状态字符串
		 */
		setRowStatus : function(record) {
			if (record) {
				var status = [];
				record._inserted && status.push(' ' + _Const.inserted.css);
				record._selected && status.push(' ' + _Const.selected.css);
				record._halfSelected && status.push(' ' + _Const.halfSelected.css);
				record._deleted && status.push(' ' + _Const.deleted.css);
				record._updFields && status.push(' ' + _Const.updated.css);
				record._focus && status.push(' ' + _Const.focus.css);
				return status.join("");
			}
			return null;
		},
		/** @description 设置单元格更新标示
		 *  @param {Object} record 数据对象
		 *  @param {String} field 当前列的值
		 *  @return {String} 更新状态样式
		 */
		setCellUpdated: function (record, field) {
			var updKey = record && record._updFields, isShowIcon;
			if (updKey) {
				$.each(updKey, function (i, updField) {
					if (updField == field) {
						isShowIcon = true;
						return false;
					}
				});
				return isShowIcon ? " cell-update " : null;
			}
			return null;
		}
	};

})(Ccay.UI.IGrid);